Modifizieren Sie das Testprogramm cont.cpp der Version cont8 in der Weise, dass Sie statt der selbstentwickelten Template-Klasse Cont<int> die Klasse deque<int> aus der Standard Template Library (STL) einsetzen und speichern Sie das Ergebnis unter dem Namen dequet.cpp.
Fügen Sie dazu am Anfang des Testprogramms die folgenden Zeilen ein:
#include <deque> using namespace std;
Nach dem neuen C++ Standard werden Header-Dateien ohne Dateierweiterung *.h angegeben.
Die Headerdatei deque
enthält die Definition der Template-Klasse deque (Kunstwort für "Double Queue"). Beachten Sie, dass
STL-Klassennamen im Gegensatz zu der sonst verbreiteten Namenskonvention nicht mit einem
Großbuchstaben beginnen.
Der C++ Standard unterstützt den Einsatz mehrerer Namensräume (Namespaces), damit es in sehr
großen Projekten nicht zu Namenskollisionen kommt. In diesem kleinen Programm wird das nicht ausgenutzt,
trotzdem muss dem Compiler erklärt werden, dass der standardmäßige Namensraum std
eingesetzt wird, in dem sämtliche Bibliotheks-Funktionen und -Klassen verfügbar
sind (dieser Schritt ist immer dann notwendig, wenn Header-Dateien ohne Erweiterung
*.h eingesetzt werden, da diese von Namespaces Gebrauch machen).
Nach Fertigstellung des Programms kopieren Sie die Datei dequet.cpp nach listt.cpp und ersetzen dann konsequent deque durch list. Sie haben auf diese Weise einen anderen Containertyp eingesetzt, ohne dass das restliche Programm verändert werden muss!
Kopieren Sie dann die Datei dequet.cpp nach vectort.cpp und ersetzen dann überall deque durch vector. Der Containertyp vector ist wie ein (in der Größe variables) Array aufgebaut. Da die Operationen push_front() und pop_front() vergleichsweise aufwendig sind (Verschiebung aller Elemente notwendig), werden sie von diesem Container nicht unterstützt. Entfernen Sie die entsprechenden Aufrufe aus dem Programm und überzeugen Sie sich davon, dass die übrigen Funktionen wie bisher ausgeführt werden.
Eine allgemeine Einführung zur STL finden Sie z.B. in Mumit's STL Newbie Guide.